草庐IT

java - 获取符合条件的流的第一个元素

全部标签

ruby-on-rails - 带有委托(delegate)和条件的事件记录

是否可以在您的ActiveRecord模型中使用委托(delegate)并在其上使用类似:if的条件?classUser:master,:if=>:has_master?belongs_to:master,:class_name=>"User"defhas_master?master.present?endend 最佳答案 不,你不能,但你可以传递:allow_nil=>true选项以在master为nil时返回nil。classUser:master,:allow_nil=>true#...enduser.master=nilus

ruby - 在 Sinatra 中,你如何制作一个 "before"过滤器来匹配除某些路由之外的所有路由

我有一个RubySinatra应用程序,我有一些代码需要在除少数异常(exception)情况外的所有路由上执行。我该怎么做?如果我想在选定的路由(白名单样式)上执行代码,我会这样做:['/join',"/join/*","/payment/*"].eachdo|path|beforepathdo#somecodeendend我该如何反其道而行之(黑名单样式)?我想匹配除'/join'、'/join/*'和'/payment/*'之外的所有路由 最佳答案 负面前瞻:before/^(?!\/(join|payment))/do#..

ruby-on-rails - Rails 开发服务器很慢,需要很长时间才能加载一个简单的页面

关于Rails在开发模式下运行缓慢的类似帖子也有,但这些帖子中的解决方案都没有对我产生任何影响。我试过安装可以提高性能的gem并修改配置文件,但都没有成功。我刚开始使用Rails,所以我正在运行“Rails入门”指南中的启动应用程序,这是一个小博客。我已经按照推荐安装了Ruby1.9.3和Rails3.2.13。我在OS/X10.7.5上运行。当加载教程应用的起始页时,实际上只有1行文本和1个链接,需要20-40秒。对任何页面的每个后续请求都需要20-40秒。然而,当我查看服务器日志时,Rails所做的任何事情似乎都不会花费很长时间。日志中的事件之间的时间一直在占用。作为Rails的初

ruby - 如何在 Ruby 中获取 `required` 的文件列表?

这纯粹是一个实验,但我想知道是否有可能通过某种元编程在运行时获取require的gem列表。例如,假设我有:require'rubygems'require'sinatra'require'nokogiri'#don'tknowwhattodohere如何在运行时打印出以下内容?thisappneedsrubygems,sinatra,nokogiri 最佳答案 您不能完全做到这一点,因为需要一个文件可能需要其他文件,而Ruby无法区分您需要的文件和其他人需要的文件。p>您可以查看$LOADED_FEATURES以获取所需的每一项内

ruby - 如何使用一行正则表达式来获取匹配的内容

我是ruby​​的新手,我想知道我是否可以只用一行来完成这项工作。以本站的“搜索”为例。当用户键入[ruby]regex时,我可以使用以下代码获取标签和关键字'[ruby]regex'=~/\[(.*?)\](.*)/tag,keyword=$1,$2我们可以只写一行吗?更新非常感谢!我可以让它更难更有趣吗,输入可能包含多个标签,例如:[ruby][regex][rails]oneline是否可以使用一行代码获取标签数组和关键字?我试过了,但失败了。 最佳答案 您需要Regexp#match方法。如果您编写/\[(.*?)\](.*

ruby-on-rails - 如何使用第一个逗号将字符串拆分成段落?

我有字符串:@address="10MadisonAvenue,NewYork,NY-(212)538-1884"像这样拆分它的最佳方法是什么?10MadisonAvenue,NewYork,NY-(212)538-1884 最佳答案 String#split有第二个参数,结果数组中返回的最大字段数:http://ruby-doc.org/core/classes/String.html#M001165@address.split(",",2)将返回一个包含两个字符串的数组,在第一次出现“,”时拆分。其余部分只是使用插值构建字符串,

ruby-on-rails - 有没有办法使 before_save 成为条件?

我正在尝试在Rails应用程序中进行有条件的before_save,但它似乎不起作用。before_savemethod_call_to_runifself.related_model.some_method_that_returns_t_or_f?如果“some_method_that_returns_t_or_f”返回true,我希望它在保存对象之前运行该方法,否则我只希望它忽略before_save。 最佳答案 你可以使用:ifbefore_savedo_something,:if=>Proc.new{|model|model

ruby - 如何从 ruby​​ 中的哈希中获取前 n 个元素?

我有一个哈希,我已经使用值对它进行了排序@friends_comment_count.sort_by{|k,v|-v}现在我只想获取前五个元素的哈希值。一种方法是使用计数器并在其为5时中断。在ruby​​中首选的方法是什么?谢谢 最佳答案 h={'a'=>10,'b'=>20,'c'=>30}#getthefirsttwopHash[*h.sort_by{|k,v|-v}[0..1].flatten]已编辑:#getthefirsttwo(moreconcisely)pHash[h.sort_by{|k,v|-v}[0..1]]

ruby - 如何消除分配分支条件下的 Rubocop 警告?

我想关闭特定的Rubocop警告:AssignmentBranchConditionsizeforplot_defaultsistoohigh.[21.05/15]在注释行的代码中执行此操作的适当语法是什么,例如:#rubocop:disable 最佳答案 我相信这是Metrics/AbcSizecop.的消息#rubocop:disableMetrics/AbcSize 关于ruby-如何消除分配分支条件下的Rubocop警告?,我们在StackOverflow上找到一个类似的问题:

ruby - 如何通过数字索引获取哈希值

有一个散列:h={:a=>"val1",:b=>"val2",:c=>"val3"}我可以引用哈希值:h[:a],h[:c]但我想通过数字索引来引用:h[0]=>val1h[2]=>val3这可能吗? 最佳答案 h.values会给你一个请求的数组。>h.values#⇒[#[0]"val1",#[1]"val2",#[2]"val3"#]UPD虽然h[h.keys[0]]的答案被标记为正确,但我对基准测试有点好奇:h={:a=>"val1",:b=>"val2",:c=>"val3"}Benchmark.bmdo|x|x.repo